{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.4285714285714286\n",
      "[ 0.          1.42857143  2.85714286  4.28571429  5.71428571  7.14285714\n",
      "  8.57142857 10.        ]\n",
      "1.25\n",
      "[0.   1.25 2.5  3.75 5.   6.25 7.5  8.75]\n",
      "[0. 0. 0. 0. 0. 0. 0. 0.]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "N = 8\n",
    "y = np.zeros(N)\n",
    "x1 = np.linspace(0, 10, N, endpoint=True)\n",
    "x2 = np.linspace(0, 10, N, endpoint=False)\n",
    "print(10/7)\n",
    "print(x1)\n",
    "\n",
    "print(10/8)\n",
    "print(x2)\n",
    "print(y)\n",
    "\n",
    "plt.plot(x1, y, 'o')\n",
    "\n",
    "plt.plot(x2, y + 0.5, 'o')\n",
    "\n",
    "plt.ylim([-0.5, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x400 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure(figsize=(8,5), dpi=80)\n",
    "ax = plt.subplot(111)\n",
    "ax.spines['right'].set_color('none')\n",
    "ax.spines['top'].set_color('none')\n",
    "\n",
    "ax.xaxis.set_ticks_position('bottom')\n",
    "ax.spines['bottom'].set_position(('data',0))\n",
    "\n",
    "ax.yaxis.set_ticks_position('left')\n",
    "ax.spines['left'].set_position(('data',0))\n",
    "\n",
    "plt.xlim(-1,1)\n",
    "X = np.linspace(-np.pi, np.pi, 256,endpoint=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "C,S = np.cos(X), np.sin(X)\n",
    "\n",
    "plt.plot(X, C, color=\"blue\", linewidth=2.5, linestyle=\"-\", label=\"cosine\")\n",
    "plt.plot(X, S, color=\"red\", linewidth=2.5, linestyle=\"-\",  label=\"sine\")\n",
    "\n",
    "plt.xlim(X.min()*1.1, X.max()*1.1)\n",
    "plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],\n",
    "           [r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n",
    "\n",
    "plt.ylim(C.min()*1.1,C.max()*1.1)\n",
    "plt.yticks([-1, +1],\n",
    "           [r'$-1$', r'$+1$'])\n",
    "\n",
    "t = 2*np.pi/3\n",
    "plt.plot([t,t],[0,np.cos(t)],\n",
    "         color ='blue',  linewidth=1.5, linestyle=\"--\")\n",
    "plt.scatter([t,],[np.cos(t),], 50, color ='blue')\n",
    "plt.annotate(r'$\\cos(\\frac{2\\pi}{3})=-\\frac{1}{2}$',\n",
    "             xy=(t, np.cos(t)),  xycoords='data',\n",
    "             xytext=(-90, -50), textcoords='offset points', fontsize=16,\n",
    "             arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3,rad=.2\"))\n",
    "\n",
    "plt.plot([t,t],[0,np.sin(t)],\n",
    "         color ='red',  linewidth=1.5, linestyle=\"--\")\n",
    "plt.scatter([t,],[np.sin(t),], 50, color ='red')\n",
    "plt.annotate(r'$\\sin(\\frac{2\\pi}{3})=\\frac{\\sqrt{3}}{2}$',\n",
    "             xy=(t, np.sin(t)),  xycoords='data',\n",
    "             xytext=(+10, +30), textcoords='offset points', fontsize=16,\n",
    "             arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3,rad=.2\"))\n",
    "\n",
    "plt.legend(loc='upper left', frameon=False)\n",
    "#plt.savefig(\"../figures/exercice_9.png\",dpi=72)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OLTZbHMiqw/kHcgcGBjg/vvv53Of+xw33HBDyfeRit7e3mkVrq2trbz00ktz/r6XCkriSrz2ta9lYGBgxuOf+tSnuOeee6zfP/3pTxMOh/nEJz5R6D4vaRiGwZ49e9i9e7elKXHvvfdy6623Zmx0MiXSGxsbp53AZv/G0NAQQghr/kah/RuF9CYUi7NnzzI1NcWGDRuyrj80NMR9993HZz7zGW6++eaS7yMddu/ezdNPP81///d/A/CNb3yDl156ic9//vPz8v4puOjM6HnNSnR1dXH77beXsvnkkoOpKfHII4/w9NNPs2TJEu6++25uv/12S0/A7MBsaWnJKsWWKq1vkkQui8RsbTa7GOeKFPIpjhoZGeG+++7jk5/8JLfddlvJ95EJL7zwAg8++CA/+clPgPhNC+AjH/nIvO0hCVceMXR0dLBq1SoA/uM//oNf//rX7N69u6A1/vIv/5If/vCHOBwOVqxYwf/8z/+UZEL1hYYpSPLII4/wox/9iMbGRl772tfyox/9iC9/+csFZW/MAN7g4CCxWGxaaXYykuXj56qKsLOzk8nJyZyk4PP5eOMb38jHPvYx7rrrrjnZSyZomsbq1av5+c9/TktLCzt37uRb3/oW69evn9d9JHDlEcN9993HiRMnUBSFtrY2vvSlLxXcAPPTn/6Um266CZvNxl//9V8D8E//9E+z3dpFBSklzz77LG9729tYsmQJFRUV3H333dx55505NSVSYUrrDw4OEg6HrT4Gr9fLkSNH8pJLKxaZeitSMTExwX333ceHPvShdGPh5wU/+tGP+MAHPoCu6zzwwAN89KMfvSD74EokhlLj8ccfZ/fu3Xzzm9+80FspOT7zmc9wzTXXcP3110/TlHA6ndx11115aUqkQtM0RkdHGRgYYGxszBKkKXTadj7o6urC5/PlJAW/38+b3vQm3ve+93H//feXdA+XKMrEMFvcdddd3H///fz+7//+hd7KvCBZU+Lxxx8H4M4770yrKZEJ5li32tpavF4vg4ODVrbDLM2eLUmYrdmbNm3KSgqBQIA3v/nNPPDAA7z97W+f1XteRigTQybkk9n41Kc+xcsvv8xjjz122dVD5INkTYnHHnuMcDjMnXfeyT333JOxxsHUl0wd65ZOWr+5ubmo/o3u7m5GRkZyNpqFQiHe/OY383u/93s88MADBb3HZY6L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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import mpl_toolkits.mplot3d\n",
    "\n",
    "x,y=np.mgrid[-3:3:5j,-2:2:6j]\n",
    "z=x*np.exp(-x**2-y**2)\n",
    "\n",
    "ax=plt.subplot(111,projection='3d')\n",
    "ax.plot_surface(x,y,z,rstride=2,cstride=1,cmap=plt.cm.coolwarm,alpha=0.8)\n",
    "ax.set_xlabel('x')\n",
    "ax.set_ylabel('y')\n",
    "ax.set_zlabel('z')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5, 6)\n"
     ]
    }
   ],
   "source": [
    "print(z.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5, 6)\n"
     ]
    }
   ],
   "source": [
    "print(x.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5, 6)\n"
     ]
    }
   ],
   "source": [
    "print(y.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-6.78098822e-06 -1.36199789e-04 -3.70229412e-04 -1.36199789e-04\n",
      "  -6.78098822e-06]\n",
      " [-2.89568120e-03 -5.81613117e-02 -1.58098837e-01 -5.81613117e-02\n",
      "  -2.89568120e-03]\n",
      " [ 0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00]\n",
      " [ 2.89568120e-03  5.81613117e-02  1.58098837e-01  5.81613117e-02\n",
      "   2.89568120e-03]\n",
      " [ 6.78098822e-06  1.36199789e-04  3.70229412e-04  1.36199789e-04\n",
      "   6.78098822e-06]]\n"
     ]
    }
   ],
   "source": [
    "print(z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[25 22 19 16 13 10  7  4  1]\n",
      "[[25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]\n",
      " [25 22 19 16 13 10  7  4  1]]\n",
      "[[0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1]\n",
      " [2 2 2 2 2 2 2 2 2]\n",
      " [3 3 3 3 3 3 3 3 3]\n",
      " [4 4 4 4 4 4 4 4 4]\n",
      " [5 5 5 5 5 5 5 5 5]\n",
      " [6 6 6 6 6 6 6 6 6]\n",
      " [7 7 7 7 7 7 7 7 7]\n",
      " [8 8 8 8 8 8 8 8 8]]\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'pp' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-149-1717e64700e2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     18\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     19\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     21\u001b[0m \u001b[0;31m# print(data[:,data[:,0]==25])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'pp' is not defined"
     ]
    }
   ],
   "source": [
    "data = np.array([[  25,    0, 1250],\n",
    " [  22,   1, 1220],\n",
    " [  19,   2, 1190],\n",
    " [  16,   3, 1160],\n",
    " [  13,   4, 1130],\n",
    " [  10,   5, 1100],\n",
    " [   7,   6, 1070],\n",
    " [   4,   7, 1040],\n",
    " [   1,   8, 1010]])\n",
    "# print(data)\n",
    "x = data[:, 0]\n",
    "y = data[:, 1]\n",
    "p = data[:, 2]\n",
    "xx, yy = np.meshgrid(x,y)\n",
    "\n",
    "print(x)\n",
    "print(xx)\n",
    "print(yy)\n",
    "\n",
    "print(pp)\n",
    "# print(data[:,data[:,0]==25])\n",
    "\n",
    "print(a.size)\n",
    "k,b=np.meshgrid(a,b)\n",
    "# print (k)\n",
    "# print(b)\n",
    "f_kb=3*k**2+2*b+1\n",
    " \n",
    "k.shape=-1,1\n",
    "b.shape=-1,1\n",
    "f_kb.shape=-1,1 #统统转成9行1列\n",
    "aa = np.array([[],[]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 234,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0,)\n",
      "(81,)\n",
      "[[1250.    0.    0.    0.    0.    0.    0.    0.    0.]\n",
      " [   0. 1220.    0.    0.    0.    0.    0.    0.    0.]\n",
      " [   0.    0. 1190.    0.    0.    0.    0.    0.    0.]\n",
      " [   0.    0.    0. 1160.    0.    0.    0.    0.    0.]\n",
      " [   0.    0.    0.    0. 1130.    0.    0.    0.    0.]\n",
      " [   0.    0.    0.    0.    0. 1100.    0.    0.    0.]\n",
      " [   0.    0.    0.    0.    0.    0. 1070.    0.    0.]\n",
      " [   0.    0.    0.    0.    0.    0.    0. 1040.    0.]\n",
      " [   0.    0.    0.    0.    0.    0.    0.    0. 1010.]]\n"
     ]
    }
   ],
   "source": [
    "# print(xx.ravel())\n",
    "# print(yy.ravel())\n",
    "zz=np.array([xx.ravel(), yy.ravel()])\n",
    "# print(zz.T.shape)\n",
    "# print(data[:,[0,1]].T.shape)\n",
    "# print(zz.T)\n",
    "result = np.array([])\n",
    "print(result.shape)\n",
    "for i in range(0,zz.shape[1]):\n",
    "    filter = (data[:,[0,1]]==zz.T[i])[:,0] & (data[:,[0,1]]==zz.T[i])[:,1]\n",
    "#     print(filter)\n",
    "    if(filter.any()):\n",
    "#         print(data[filter][0,2])\n",
    "        result = np.append(result, data[filter][0,2])\n",
    "#         print(result)\n",
    "    else: \n",
    "        result = np.append(result,0)\n",
    "print(result.shape)\n",
    "result.shape = (9,9)\n",
    "print(result)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
